_require local "../../../../basis.smi"
_require "../../../data/symbols/main/Loc.smi"
_require local "../../../extensions/debug/main/Bug.smi"

_require "./iml.grm.smi"

structure MLLex =
struct
  structure UserDeclarations =
  struct
    type token = ML.Tokens.token
    type pos = ML.Tokens.pos
    type arg (= {})
    val isINITIAL : arg -> bool
    val initArg : {source : Loc.source,
                   enableMeta : bool,
                   lexErrorFn : (string * pos * pos) -> unit,
                   initialLineno : int,
                   allow8bitId : bool} -> arg
  end
  val makeLexer
      : (int -> string) -> UserDeclarations.arg -> unit
        -> UserDeclarations.token
end
